<?php
declare(strict_types=1);

namespace LowCode\Naive;

use LowCode\Naive;
use LowCode\Support\JsExp;

/**
 * 按钮组件 NFloatButtonGroup
 * @method static static make(mixed $children = null) NFloatButtonGroup 按钮组件
 */
class FloatButtonGroup extends Naive
{

    /**
     * @param mixed $children
     */
    public function __construct(mixed $children = null)
    {
        parent::__construct();
        $this->children($children);
    }


    /**
     * 按钮的 CSS left 属性
     * @param int|string|JsExp $value
     * @return $this
     */
    public function left(int|string|JsExp $value): static
    {
        return $this->prop('left', $value);
    }

    /**
     * 按钮的 CSS right 属性
     * @param int|string|JsExp $value
     * @return $this
     */
    public function right(int|string|JsExp $value): static
    {
        return $this->prop('right', $value);
    }

    /**
     * 按钮的 CSS top 属性
     * @param int|string|JsExp $value
     * @return $this
     */
    public function top(int|string|JsExp $value): static
    {
        return $this->prop('top', $value);
    }


    /**
     * 按钮的 CSS bottom 属性
     * @param int|string|JsExp $value
     * @return $this
     */
    public function bottom(int|string|JsExp $value = 40): static
    {
        return $this->prop('bottom', $value);
    }



    /**
     * 按钮组的定位方式
     * @param string|JsExp $value
     * @return $this
     */
    public function position(string|JsExp $value = 'relative' | 'absolute' | 'fixed'): static
    {
        return $this->prop('position', $value);
    }

    /**
     * 按钮的形状
     * @param string|JsExp $value
     * @return $this
     */
    public function shape(string|JsExp $value = 'circle' | 'square'): static
    {
        return $this->prop('shape', $value);
    }
}
